﻿using System.Collections.Generic;
using Microsoft.Xna.Framework;
using GameLibrary;
using Rescue_of_the_Dwarvenzombies.SceneObjects;

namespace Rescue_of_the_Dwarvenzombies.SceneLayers
{
    public interface ISceneLayer
    {
        /// <summary>
        /// Updates the layer
        /// </summary>
        /// <param name="gameTime">The game time.</param>
        void Update(GameTime gameTime);
        
        /// <summary>
        /// Gets the scene objects.
        /// </summary>
        /// <returns></returns>
        List<ISceneObject> GetSceneObjects();
        
        /// <summary>
        /// Gets the child.
        /// </summary>
        ISceneLayer Child { get; }
        
        /// <summary>
        /// Gets the name of the layer.
        /// </summary>
        /// <value>
        /// The name of the layer.
        /// </value>
        Constant.Layer LayerName { get; }
        
        /// <summary>
        /// Gets the depth.
        /// </summary>
        float Depth { get; }

        /// <summary>
        /// Removes the scene object.
        /// </summary>
        /// <param name="sceneObjectToRemove">The scene object to remove.</param>
        void RemoveSceneObject(ISceneObject sceneObjectToRemove);
    }
}